package com.tl.web05.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;

@WebListener
public class UserMapInitListener implements ServletContextListener {
    //当ServletContext初始化的时候进行调用
    @Override
    public void contextInitialized(ServletContextEvent sce) {
//        try {
//            // 容器创建
//            // 希望用户注册进来进来之后，能一直保存下来
//            // 加载的时候进行初始化
//            HashMap<String, User> map = null;
//            try {
//                FileInputStream in = new FileInputStream(Config.CACHE_PATH);
//                ObjectInputStream objectInputStream = new ObjectInputStream(in);
//                map = (HashMap<String, User>) objectInputStream.readObject();
//                objectInputStream.close();
//            } catch (IOException | ClassNotFoundException e) {
//                e.printStackTrace();
//            }
//            if (map == null) {
//                System.out.println("userMap被新建了");
//                map = new HashMap<String, User>();
//            } else {
//                System.out.println("userMap从缓存中读取到了");
//            }
//            sce.getServletContext().setAttribute(Config.USER_MAP, map);
//        } catch (Exception e) {
////            e.printStackTrace();
////            System.out.println("data.obj文件为空,已经初始化");
//        }
        System.out.println("已改成数据库版,map的加载注释了");
    }

    //当ServletContext销毁的时候进行调用
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
//        try {
//            //销毁的时候将map序列化
//            FileOutputStream fos = null;
//            ObjectOutputStream oos = null;
//            try {
//                fos = new FileOutputStream(Config.CACHE_PATH);
//                oos = new ObjectOutputStream(fos);
//                oos.writeObject(sce.getServletContext().getAttribute(Config.USER_MAP));
//                oos.flush();
//                oos.close();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
        System.out.println("已改成数据库版,map的持久化注释了");
    }
}
